<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::ppf_match_3d::Pose3D Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d0/de6/namespacecv_1_1ppf__match__3d.html">ppf_match_3d</a></li><li class="navelem"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html">Pose3D</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-attribs">Public Attributes</a> |
<a href="../../d8/dfa/classcv_1_1ppf__match__3d_1_1Pose3D-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::ppf_match_3d::Pose3D Class Reference<div class="ingroups"><a class="el" href="../../d9/d25/group__surface__matching.html">Surface Matching</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Class, allowing the storage of a pose. The data structure stores both the quaternions and the matrix forms. It supports IO functionality together with various helper methods to work with poses.  
 <a href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#details">More...</a></p>
<p><code>#include &lt;opencv2/surface_matching/pose_3d.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afb35d62e7106cecffb6ab166f3baf606"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#afb35d62e7106cecffb6ab166f3baf606">Pose3D</a> ()</td></tr>
<tr class="separator:afb35d62e7106cecffb6ab166f3baf606"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2af6a081884463b2deb382ae9aef5934"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a2af6a081884463b2deb382ae9aef5934">Pose3D</a> (double Alpha, size_t ModelIndex=0, size_t NumVotes=0)</td></tr>
<tr class="separator:a2af6a081884463b2deb382ae9aef5934"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae0bdf7f6d866e3d4bdee1baf876a264c"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#ae0bdf7f6d866e3d4bdee1baf876a264c">~Pose3D</a> ()</td></tr>
<tr class="separator:ae0bdf7f6d866e3d4bdee1baf876a264c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4aaae88410db92cad52250668e24b5c6"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a4aaae88410db92cad52250668e24b5c6">appendPose</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> &amp;IncrementalPose)</td></tr>
<tr class="memdesc:a4aaae88410db92cad52250668e24b5c6"><td class="mdescLeft"> </td><td class="mdescRight">Left multiplies the existing pose in order to update the transformation.  <a href="#a4aaae88410db92cad52250668e24b5c6">More...</a><br/></td></tr>
<tr class="separator:a4aaae88410db92cad52250668e24b5c6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0502d5c729cf16937f1ad2fbf7baed65"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d9/d25/group__surface__matching.html#gaace349a5dbee5aa24dd68d8f57518902">Pose3DPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a0502d5c729cf16937f1ad2fbf7baed65">clone</a> ()</td></tr>
<tr class="separator:a0502d5c729cf16937f1ad2fbf7baed65"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aafb846e4bf0a2943ee751c59342ad630"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#aafb846e4bf0a2943ee751c59342ad630">printPose</a> ()</td></tr>
<tr class="separator:aafb846e4bf0a2943ee751c59342ad630"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2f939f6d87d559013d0a3d0ee02ede2a"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a2f939f6d87d559013d0a3d0ee02ede2a">readPose</a> (FILE *f)</td></tr>
<tr class="separator:a2f939f6d87d559013d0a3d0ee02ede2a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ada48c63e8acabc8f2595f33de882b6cc"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#ada48c63e8acabc8f2595f33de882b6cc">readPose</a> (const std::string &amp;FileName)</td></tr>
<tr class="separator:ada48c63e8acabc8f2595f33de882b6cc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a22aca6061cb45f4186061c300b5ccba9"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a22aca6061cb45f4186061c300b5ccba9">updatePose</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> &amp;NewPose)</td></tr>
<tr class="memdesc:a22aca6061cb45f4186061c300b5ccba9"><td class="mdescLeft"> </td><td class="mdescRight">Updates the pose with the new one.  <a href="#a22aca6061cb45f4186061c300b5ccba9">More...</a><br/></td></tr>
<tr class="separator:a22aca6061cb45f4186061c300b5ccba9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab8220d2fde3f8054c614cf920255e84c"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#ab8220d2fde3f8054c614cf920255e84c">updatePose</a> (<a class="el" href="../../dc/d84/group__core__basic.html#gaff0100a48f049fb15584a4a657eae838">Matx33d</a> &amp;NewR, <a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> &amp;NewT)</td></tr>
<tr class="memdesc:ab8220d2fde3f8054c614cf920255e84c"><td class="mdescLeft"> </td><td class="mdescRight">Updates the pose with the new one.  <a href="#ab8220d2fde3f8054c614cf920255e84c">More...</a><br/></td></tr>
<tr class="separator:ab8220d2fde3f8054c614cf920255e84c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8351a516d8fb5359308e776b6ecfe4a8"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a8351a516d8fb5359308e776b6ecfe4a8">updatePoseQuat</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga41502c424d368098331a348dc26141bf">Vec4d</a> &amp;Q, <a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> &amp;NewT)</td></tr>
<tr class="memdesc:a8351a516d8fb5359308e776b6ecfe4a8"><td class="mdescLeft"> </td><td class="mdescRight">Updates the pose with the new one, but this time using quaternions to represent rotation.  <a href="#a8351a516d8fb5359308e776b6ecfe4a8">More...</a><br/></td></tr>
<tr class="separator:a8351a516d8fb5359308e776b6ecfe4a8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a862206978d42ff33da0b73467c8c639f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a862206978d42ff33da0b73467c8c639f">writePose</a> (FILE *f)</td></tr>
<tr class="separator:a862206978d42ff33da0b73467c8c639f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a89cec144db41d73c638feed401128f3f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a89cec144db41d73c638feed401128f3f">writePose</a> (const std::string &amp;FileName)</td></tr>
<tr class="separator:a89cec144db41d73c638feed401128f3f"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a580ada1c13cd18bcf218674f6d606c39"><td align="right" class="memItemLeft" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a580ada1c13cd18bcf218674f6d606c39">alpha</a></td></tr>
<tr class="separator:a580ada1c13cd18bcf218674f6d606c39"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a40a8833052852341dffc442d7001421b"><td align="right" class="memItemLeft" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a40a8833052852341dffc442d7001421b">angle</a></td></tr>
<tr class="separator:a40a8833052852341dffc442d7001421b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a095abb29ff9c0a535f310468a541ada9"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a095abb29ff9c0a535f310468a541ada9">modelIndex</a></td></tr>
<tr class="separator:a095abb29ff9c0a535f310468a541ada9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adeedb890c88c752e80f3d36a24ff2d3b"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#adeedb890c88c752e80f3d36a24ff2d3b">numVotes</a></td></tr>
<tr class="separator:adeedb890c88c752e80f3d36a24ff2d3b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a20e16c79d3e967f864641d0e618284a5"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a20e16c79d3e967f864641d0e618284a5">pose</a></td></tr>
<tr class="separator:a20e16c79d3e967f864641d0e618284a5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac4726adaf40b19bdd79f2efd1ce70588"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga41502c424d368098331a348dc26141bf">Vec4d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#ac4726adaf40b19bdd79f2efd1ce70588">q</a></td></tr>
<tr class="separator:ac4726adaf40b19bdd79f2efd1ce70588"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae1447eb1b9f10cfadadd2b1f2ec4f2c2"><td align="right" class="memItemLeft" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#ae1447eb1b9f10cfadadd2b1f2ec4f2c2">residual</a></td></tr>
<tr class="separator:ae1447eb1b9f10cfadadd2b1f2ec4f2c2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a78c679476a717afdf1e055be20183ee9"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d22/classcv_1_1ppf__match__3d_1_1Pose3D.html#a78c679476a717afdf1e055be20183ee9">t</a></td></tr>
<tr class="separator:a78c679476a717afdf1e055be20183ee9"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class, allowing the storage of a pose. The data structure stores both the quaternions and the matrix forms. It supports IO functionality together with various helper methods to work with poses. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="afb35d62e7106cecffb6ab166f3baf606"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb35d62e7106cecffb6ab166f3baf606">◆ </a></span>Pose3D() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::ppf_match_3d::Pose3D::Pose3D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;ppf_match_3d_Pose3D object&gt;</td><td>=</td><td>cv.ppf_match_3d_Pose3D(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;ppf_match_3d_Pose3D object&gt;</td><td>=</td><td>cv.ppf_match_3d_Pose3D(</td><td class="paramname">Alpha[, ModelIndex[, NumVotes]]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a2af6a081884463b2deb382ae9aef5934"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2af6a081884463b2deb382ae9aef5934">◆ </a></span>Pose3D() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::ppf_match_3d::Pose3D::Pose3D </td>
          <td>(</td>
          <td class="paramtype">double </td>
          <td class="paramname"><em>Alpha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t </td>
          <td class="paramname"><em>ModelIndex</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t </td>
          <td class="paramname"><em>NumVotes</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;ppf_match_3d_Pose3D object&gt;</td><td>=</td><td>cv.ppf_match_3d_Pose3D(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;ppf_match_3d_Pose3D object&gt;</td><td>=</td><td>cv.ppf_match_3d_Pose3D(</td><td class="paramname">Alpha[, ModelIndex[, NumVotes]]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ae0bdf7f6d866e3d4bdee1baf876a264c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0bdf7f6d866e3d4bdee1baf876a264c">◆ </a></span>~Pose3D()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::ppf_match_3d::Pose3D::~Pose3D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4aaae88410db92cad52250668e24b5c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4aaae88410db92cad52250668e24b5c6">◆ </a></span>appendPose()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ppf_match_3d::Pose3D::appendPose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> &amp; </td>
          <td class="paramname"><em>IncrementalPose</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.appendPose(</td><td class="paramname">IncrementalPose</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Left multiplies the existing pose in order to update the transformation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">IncrementalPose</td><td>New pose to apply </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a0502d5c729cf16937f1ad2fbf7baed65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0502d5c729cf16937f1ad2fbf7baed65">◆ </a></span>clone()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d9/d25/group__surface__matching.html#gaace349a5dbee5aa24dd68d8f57518902">Pose3DPtr</a> cv::ppf_match_3d::Pose3D::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="aafb846e4bf0a2943ee751c59342ad630"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafb846e4bf0a2943ee751c59342ad630">◆ </a></span>printPose()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ppf_match_3d::Pose3D::printPose </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.printPose(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a2f939f6d87d559013d0a3d0ee02ede2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f939f6d87d559013d0a3d0ee02ede2a">◆ </a></span>readPose() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ppf_match_3d::Pose3D::readPose </td>
          <td>(</td>
          <td class="paramtype">FILE * </td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="ada48c63e8acabc8f2595f33de882b6cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada48c63e8acabc8f2595f33de882b6cc">◆ </a></span>readPose() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ppf_match_3d::Pose3D::readPose </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp; </td>
          <td class="paramname"><em>FileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a22aca6061cb45f4186061c300b5ccba9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22aca6061cb45f4186061c300b5ccba9">◆ </a></span>updatePose() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ppf_match_3d::Pose3D::updatePose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> &amp; </td>
          <td class="paramname"><em>NewPose</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.updatePose(</td><td class="paramname">NewPose</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.updatePose(</td><td class="paramname">NewR, NewT</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Updates the pose with the new one. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">NewPose</td><td>New pose to overwrite </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ab8220d2fde3f8054c614cf920255e84c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8220d2fde3f8054c614cf920255e84c">◆ </a></span>updatePose() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ppf_match_3d::Pose3D::updatePose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#gaff0100a48f049fb15584a4a657eae838">Matx33d</a> &amp; </td>
          <td class="paramname"><em>NewR</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> &amp; </td>
          <td class="paramname"><em>NewT</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.updatePose(</td><td class="paramname">NewPose</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.updatePose(</td><td class="paramname">NewR, NewT</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Updates the pose with the new one. </p>
</div>
</div>
<a id="a8351a516d8fb5359308e776b6ecfe4a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8351a516d8fb5359308e776b6ecfe4a8">◆ </a></span>updatePoseQuat()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::ppf_match_3d::Pose3D::updatePoseQuat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga41502c424d368098331a348dc26141bf">Vec4d</a> &amp; </td>
          <td class="paramname"><em>Q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> &amp; </td>
          <td class="paramname"><em>NewT</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.ppf_match_3d_Pose3D.updatePoseQuat(</td><td class="paramname">Q, NewT</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Updates the pose with the new one, but this time using quaternions to represent rotation. </p>
</div>
</div>
<a id="a862206978d42ff33da0b73467c8c639f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a862206978d42ff33da0b73467c8c639f">◆ </a></span>writePose() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ppf_match_3d::Pose3D::writePose </td>
          <td>(</td>
          <td class="paramtype">FILE * </td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a89cec144db41d73c638feed401128f3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89cec144db41d73c638feed401128f3f">◆ </a></span>writePose() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::ppf_match_3d::Pose3D::writePose </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp; </td>
          <td class="paramname"><em>FileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a580ada1c13cd18bcf218674f6d606c39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a580ada1c13cd18bcf218674f6d606c39">◆ </a></span>alpha</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double cv::ppf_match_3d::Pose3D::alpha</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a40a8833052852341dffc442d7001421b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40a8833052852341dffc442d7001421b">◆ </a></span>angle</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double cv::ppf_match_3d::Pose3D::angle</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a095abb29ff9c0a535f310468a541ada9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a095abb29ff9c0a535f310468a541ada9">◆ </a></span>modelIndex</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::ppf_match_3d::Pose3D::modelIndex</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="adeedb890c88c752e80f3d36a24ff2d3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adeedb890c88c752e80f3d36a24ff2d3b">◆ </a></span>numVotes</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::ppf_match_3d::Pose3D::numVotes</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a20e16c79d3e967f864641d0e618284a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20e16c79d3e967f864641d0e618284a5">◆ </a></span>pose</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga366070cdc95233a6b6db521dfd99e713">Matx44d</a> cv::ppf_match_3d::Pose3D::pose</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="ac4726adaf40b19bdd79f2efd1ce70588"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4726adaf40b19bdd79f2efd1ce70588">◆ </a></span>q</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga41502c424d368098331a348dc26141bf">Vec4d</a> cv::ppf_match_3d::Pose3D::q</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="ae1447eb1b9f10cfadadd2b1f2ec4f2c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1447eb1b9f10cfadadd2b1f2ec4f2c2">◆ </a></span>residual</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double cv::ppf_match_3d::Pose3D::residual</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a78c679476a717afdf1e055be20183ee9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78c679476a717afdf1e055be20183ee9">◆ </a></span>t</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga370d94209693b5b13437ab4991cabf73">Vec3d</a> cv::ppf_match_3d::Pose3D::t</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/surface_matching/<a class="el" href="../../d8/d9d/pose__3d_8hpp.html">pose_3d.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:48 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
